home *** CD-ROM | disk | FTP | other *** search
- #include "oberon2.h"
-
-
-
- static unsigned short program [] = {
- 3, 4, 5, 69, 294, 865, 876, 70, 295, 1,
- 1007, 8, 4, 9, 2, 6, 4, 73, 295, 1,
- 4, 74, 295, 1, 284, 5, 2, 75, 301, 1,
- 67, 288, 1129, 13, 1158, 5, 286, 77, 301, 1,
- 67, 278, 1119, 13, 925, 5, 286, 78, 301, 1,
- 67, 268, 1254, 16, 915, 5, 286, 80, 2, 1,
- 81, 302, 1, 82, 294, 895, 1095, 82, 281, 868,
- 302, 82, 294, 887, 1087, 82, 294, 860, 5, 803,
- 5, 268, 19, 83, 299, 1, 79, 2, 1, 1066,
- 2, 78, 294, 1, 4, 74, 295, 1, 288, 16,
- 869, 68, 275, 1, 279, 19, 78, 294, 1, 4,
- 16, 4, 20, 2, 67, 295, 1039, 2, 84, 304,
- 1, 22, 1070, 74, 295, 1, 288, 23, 24, 840,
- 2, 88, 311, 1, 82, 296, 1, 1018, 20, 68,
- 295, 1, 289, 67, 297, 1161, 16, 822, 283, 8,
- 2, 89, 297, 1, 27, 814, 2, 17, 82, 2,
- 777, 2, 67, 306, 1006, 73, 296, 1, 1024, 419,
- 82, 417, 1, 83, 1137, 20, 412, 91, 310, 1,
- 1012, 29, 835, 93, 298, 1, 1006, 29, 829, 286,
- 94, 295, 1, 824, 8, 393, 95, 328, 1, 993,
- 24, 94, 297, 1, 813, 8, 382, 71, 295, 1,
- 378, 96, 295, 1, 289, 977, 97, 295, 1, 973,
- 74, 295, 1, 284, 16, 792, 96, 295, 1, 278,
- 94, 266, 263, 98, 299, 1, 956, 36, 779, 8,
- 348, 100, 298, 1, 773, 38, 946, 341, 102, 307,
- 1, 4, 10, 939, 27, 937, 103, 295, 1, 933,
- 36, 756, 8, 325, 104, 297, 1, 750, 8, 319,
- 105, 310, 1, 1043, 36, 742, 96, 298, 1, 1037,
- 36, 736, 286, 94, 295, 1, 731, 8, 300, 106,
- 295, 1, 296, 107, 294, 1, 68, 2, 1, 155,
- 4, 72, 294, 1, 4, 2, 4, 108, 295, 1,
- 2, 109, 2, 1, 2, 4, 72, 296, 1, 4,
- 851, 85, 297, 1, 987, 23, 282, 81, 295, 1,
- 278, 82, 2, 1, 821, 20, 272, 882, 76, 294,
- 313, 110, 294, 310, 111, 294, 307, 112, 294, 304,
- 113, 294, 301, 114, 294, 298, 115, 294, 295, 76,
- 2, 1, 857, 2, 116, 371, 1, 296, 109, 294,
- 1, 117, 295, 1, 289, 118, 295, 1, 339, 119,
- 295, 1, 335, 120, 295, 1, 331, 121, 295, 1,
- 327, 82, 297, 1, 798, 20, 321, 122, 309, 1,
- 123, 295, 1, 314, 788, 97, 295, 1, 784, 74,
- 295, 1, 284, 60, 303, 755, 82, 300, 1, 83,
- 295, 1, 295, 888, 20, 108, 294, 304, 124, 294,
- 301, 125, 294, 298, 126, 294, 295, 127, 295, 1,
- 223, 116, 294, 288, 109, 294, 285, 128, 2, 1,
- 213, 710, 74, 2, 1, 288, 736, 74, 2, 1,
- 288, 694, 16, 692, 2, 0, 0
- };
-
-
-
- int yyparse () {
- int yychar = yylex (), pc = 0, code;
- unsigned short call_stack [YYCALLSTACK_SIZE];
- unsigned short *free = call_stack;
-
- *free++ = sizeof (program) / sizeof (program [0]) - 1;
- while ((code = program [pc]) != 0 && yychar > 0) {
- pc++;
- if (code == 1)
- yychar = yylex ();
- else if (code == 2) /*return*/
- pc = *--free;
- else if ((code -= 2) < 63) {/*match*/
- if (yychar == code)
- pc++;
- else {
- yyerror ("Syntax error");
- return 1;
- }
- } else if ((code -= 63) < 63) {
- if (yychar == code)
- pc++; /*skipif*/
- } else if ((code -= 63) <= 562) /*goto*/
- pc += code + -163;
- else if ((code -= 563) <= 562) { /*gosub*/
- if (free >= call_stack + YYCALLSTACK_SIZE) {
- yyerror ("Call stack overflow");
- return 1;
- }
- pc += code + -163;
- *free++ = pc;
- } else {
- yyerror ("Internal error");
- return 1;
- }
- }
- if (code != 0 || yychar > 0) {
- if (code != 0)
- yyerror ("Unexpected EOF");
- else
- yyerror ("Garbage after end of program");
- return 1;
- }
- return 0;
- }
-